-- 推筒子枚举

require "pubenum"  -- 在app/common/lib 

EPJTableState = {
	TABLE_STATE_UNKNOW = 0,

    TABLE_STATE_WAIT_PLAYER_SITDOWN	= 1,   --等待玩家坐下
	TABLE_STATE_WAIT_ALL_READY = 2,	       --等待所有玩家准备

    --等待游戏开始
    TABLE_STATE_WAIT_GAME_START = 3,       --等待游戏开始
	TABLE_STATE_GAME_START = 4,            --游戏开始

     --等待一局游戏开始
	TABLE_STATE_WAIT_ONE_GAME_START = 5,    --等待一局开始
    TABLE_STATE_ONE_GAME_START = 6,         --一局游戏开始

    --等待摇骰子
    TABLE_STATE_WAIT_SHAKE_DICE = 7,       --等待摇骰子
    TABLE_STATE_SHAKE_DICE = 8,            --庄家摇骰子

    --等待下注
	TABLE_STATE_WAIT_PLAYER_BET = 9,       --等待玩家下注
    TABLE_STATE_PLAYER_BET = 10,           --玩家下注
   
   --倒计时等待开牌
	TABLE_STATE_WAIT_OPENCARD_COUNTDOWN = 11,   --等待开牌,播放倒计时
    TABLE_STATE_OPENCARD_COUNTDOWN = 12,        --等待开牌,播放倒计时

    --开牌
	TABLE_STATE_WAIT_OPEN_CARD = 13,          --等待开牌动画
    TABLE_STATE_OPEN_CARD = 14,               --开牌,播放转动动画

    --处理开牌结果
    TABLE_STATE_WAIT_HANDLE_OPENCARD_RESULT = 15,   --等待处理开牌结果
    TABLE_STATE_HANDLE_OPENCARD_RESULT = 16,        --处理开牌结果

    --等待一局游戏结束
    TABLE_STATE_WAIT_ONE_GAME_END = 17,     --等待一局游戏结束
    TABLE_STATE_ONE_GAME_END = 18,          --一局游戏结束

    --等待一局游戏真正结束
    TABLE_STATE_WAIT_ONE_GAME_REAL_END = 19, --等待一局游戏真正结束
	TABLE_STATE_ONE_GAME_REAL_END = 20,      --一局游戏真正结束

    --等待游戏结束
    TABLE_STATE_WAIT_GAME_END = 21,          --等待游戏结束
    TABLE_STATE_GAME_END = 22,  	         --游戏结束
}

--基本操作类型
EPJActionType = {
	ACTION_TYPE_UNKNOW = 0,         --未定义

	ACTION_TYPE_BET = 1,            --下注
    ACTION_TYPE_CHANGE_SCORE = 2,   --切换底注
    ACTION_TYPE_REPEAT_LAST_BET = 3,--续压（重复上次下注）
    ACTION_TYPE_UP_BANKER = 4,      --上庄
    ACTION_TYPE_DOWN_BANKER = 5,    --下庄
    ACTION_TYPE_START_GAME = 6,     --开始游戏
    ACTION_TYPE_OPEN_LOTTERY = 7,   --开奖
}

--基本操作状态 
EPJActionState = {
    NODO = 0,    --未操作
    DOING = 1,   --操作中(服务器处理中)
    DONE = 2,    --已完成
}

--桌子类型
EPJTableType = {
    TABLE_TYPE_DIAMOND = 1,	--钻石场
    TABLE_TYPE_COIN = 2,    --金币场
    --TABLE_TYPE_FNAGKA = 3,  --房卡场
    TABLE_TYPE_ZIJIAN = 4,  --自建场
    TABLE_TYPE_ZRSX = 5,    --真人场
}

--座位状态
EPJSeatState = {
	SEAT_STATE_UNKNOW = 0,
	SEAT_STATE_NO_PLAYER = 1,       --没有玩家
	SEAT_STATE_WAIT_READY = 2,      --等待准备
    SEAT_STATE_WAIT_START = 3,      --等待开局
	SEAT_STATE_WAIT_BET = 4,        --等待下注
	SEAT_STATE_PLAYING  = 5,        --游戏中
    SEAT_STATE_INGAME_WATCH = 6,    --游戏中旁观,即本局未下注

}

--桌子删除原因
EPJTableDeleteReason = {
    DELETE_REASON_UNKONW = 0,                         --未知原因
    DELETE_REASON_TABLE_NO_PLAYER = 1,                --桌子没有人被自动删除
    DELETE_REASON_SYSTEM_REQUIRE = 2,                 --系统强制要求删除
    DELETE_REASON_SYSTEM_ERROR = 3,                   --系统错误被删除
    DELETE_REASON_TABLE_ROUND_FULL = 4,               --达到最大局数
}

--下注按钮id定义
EPJBetBtnId = {
    BET_BTN_ID_PLAYER_ONE = 1101,       --闲家1赢
    BET_BTN_ID_PLAYER_TWO = 1102,       --闲家1输
    BET_BTN_ID_PLAYER_THREE = 1103,     --闲家2赢
    BET_BTN_ID_PLAYER_FOUR = 1104,      --闲家2输
    BET_BTN_ID_PLAYER_FIVE = 1105,      --闲家3赢
    BET_BTN_ID_PLAYER_SIX = 1106,       --闲家3输
}

--开始模式
EPJOpenLotteryMode = {
    OPENLOTTERY_MODE_BANKER = 1,    --庄家开奖
    OPENLOTTERY_MODE_AUTO = 2,      --自动开奖
}

--额外奖励类型
EPJExtraPrizeType = {
  EXTRA_PRIZE_TYPE_KILLALL = 1104,      --庄家通杀
}

--牌定义（百位 红点  个位+十位 黑点）
EPJCardData = {
    -- 文牌 --
    -- 天牌 地牌 人牌 和牌
    606,606,200,200,800,800,103,103,  -- 红6黑6,红2,红8,红1黑3
    -- 梅花 长三 板凳 虎头 红头 尖七 铜锤
    10,10,6,6,4,4,11,11,406,406,106,106,105,105,  -- 黑10,黑6,黑4,黑11,红4黑6,红1黑6,红1黑5
    -- 武牌 --
    -- 红九点 黑九点 平八点 斜八点 红七点 黑七点 红五点 黑五点 大猴 小猴
    405,9,8,44,403,7,500,5,402,102,  -- 红4黑5,黑9,黑8,黑8,红4黑3,黑7,红5,黑5,红4黑2,红1黑2

    -- 12,12,2,2,8,8,4,4,10,10,6,6,4,4,11,11,10,10,7,7,6,6,
    -- 9,9,8,8,7,7,5,5,6,3,
}

-- 牌大小值定义
EPJCardsCompareValue = {
    [606] = 9, -- 天牌
    [200] = 8, -- 地牌
    [800] = 7, -- 人牌
    [103] = 6, -- 鹅牌
    [10] = 5, -- 梅牌
    [6] = 5, -- 长三
    [4] = 5, -- 板凳
    [11] = 4, -- 斧头
    [406] = 4, -- 红头十
    [106] = 4, -- 高脚七
    [105] = 4, -- 零霖六
    [405] = 3, -- 杂九
    [9] = 3, -- 杂九
    [8] = 3, -- 杂八
    [44] = 3, -- 杂八
    [403] = 3, -- 杂七
    [7] = 3, -- 杂七
    [500] = 3, -- 杂五
    [5] = 3, -- 杂五
    [402] = 2, -- 二四
    [102] = 1, -- 丁三  
}

--牌型定义
EPJCardsType = {
    CARDS_TYPE_DIANSHUPAI = 0,  -- 单牌
    CARDS_TYPE_DIGAOJIU = 1,  -- 地高九
    CARDS_TYPE_TIANGAOJIU = 2,  -- 天高九
    CARDS_TYPE_DIGANG = 3,  -- 地杠
    CARDS_TYPE_TIANGANG = 4,  -- 天杠
    CARDS_TYPE_DIWANG = 5,  -- 地王
    CARDS_TYPE_TIANWANG = 6,  -- 天王

    CARDS_TYPE_SHUANGZAWU = 7,  -- 双杂五
    CARDS_TYPE_SHUANGZAQI = 8,  -- 双杂七
    CARDS_TYPE_SHUANGZABA = 9,  -- 双杂八
    CARDS_TYPE_SHUANGZAJIU = 10,  -- 双杂九

    CARDS_TYPE_SHUANGLINGLIN = 11,  -- 双零霖
    CARDS_TYPE_SHUANGGAOJIAO = 12,  -- 双高脚
    CARDS_TYPE_SHUANGHONGTOU = 13,  -- 双红头
    CARDS_TYPE_SHUANGFUTOU = 14,  -- 双斧头
    CARDS_TYPE_SHUANGBANDENG = 15,  -- 双板凳
    CARDS_TYPE_SHUANGCHAGNSAN = 16,  -- 双长三
    CARDS_TYPE_SHUANGMEI = 17,  -- 双梅
    CARDS_TYPE_SHUANGE = 18,  -- 双鹅
    CARDS_TYPE_SHUANGREN = 19,  -- 双人
    CARDS_TYPE_SHUANGDI = 20,  -- 双地
    CARDS_TYPE_SHUANGTIAN = 21,  -- 双天

    CARDS_TYPE_ZHIZUN = 22,  -- 至尊
}

-- 牌型大小值定义
EPJCardsTypeValue = {
    [EPJCardsType.CARDS_TYPE_DIANSHUPAI] =     0,  -- 单牌
    [EPJCardsType.CARDS_TYPE_TIANGAOJIU] =     1,  -- 天高九
    [EPJCardsType.CARDS_TYPE_DIGAOJIU] =       2,  -- 地高九
    [EPJCardsType.CARDS_TYPE_DIGANG] =         3,  -- 地杠
    [EPJCardsType.CARDS_TYPE_TIANGANG] =       4,  -- 天杠
    [EPJCardsType.CARDS_TYPE_DIWANG] =         5,  -- 地王
    [EPJCardsType.CARDS_TYPE_TIANWANG] =       6,  -- 天王

    [EPJCardsType.CARDS_TYPE_SHUANGZAWU] =     7,  -- 双杂五
    [EPJCardsType.CARDS_TYPE_SHUANGZAQI] =     7,  -- 双杂七
    [EPJCardsType.CARDS_TYPE_SHUANGZABA] =     7,  -- 双杂八
    [EPJCardsType.CARDS_TYPE_SHUANGZAJIU] =    7,  -- 双杂九

    [EPJCardsType.CARDS_TYPE_SHUANGLINGLIN] =  8,  -- 双零霖
    [EPJCardsType.CARDS_TYPE_SHUANGGAOJIAO] =  8,  -- 双高脚
    [EPJCardsType.CARDS_TYPE_SHUANGHONGTOU] =  8,  -- 双红头
    [EPJCardsType.CARDS_TYPE_SHUANGFUTOU] =    8,  -- 双斧头
    [EPJCardsType.CARDS_TYPE_SHUANGBANDENG] =  9,  -- 双板凳
    [EPJCardsType.CARDS_TYPE_SHUANGCHAGNSAN] = 9,  -- 双长三
    [EPJCardsType.CARDS_TYPE_SHUANGMEI] =      9,  -- 双梅
    [EPJCardsType.CARDS_TYPE_SHUANGE] =        10,  -- 双鹅
    [EPJCardsType.CARDS_TYPE_SHUANGREN] =      11,  -- 双人
    [EPJCardsType.CARDS_TYPE_SHUANGDI] =       12,  -- 双地
    [EPJCardsType.CARDS_TYPE_SHUANGTIAN] =     13,  -- 双天

    [EPJCardsType.CARDS_TYPE_ZHIZUN] =         14,  -- 至尊
}

-- 单牌和对牌之间的关联
EPJCardWithType = {
    [606] = EPJCardsType.CARDS_TYPE_SHUANGTIAN,
    [200] = EPJCardsType.CARDS_TYPE_SHUANGDI,
    [800] = EPJCardsType.CARDS_TYPE_SHUANGREN,
    [103] = EPJCardsType.CARDS_TYPE_SHUANGE,
    [10] = EPJCardsType.CARDS_TYPE_SHUANGMEI,
    [6] = EPJCardsType.CARDS_TYPE_SHUANGCHAGNSAN,
    [4] = EPJCardsType.CARDS_TYPE_SHUANGBANDENG,
    [11] = EPJCardsType.CARDS_TYPE_SHUANGFUTOU,
    [406] = EPJCardsType.CARDS_TYPE_SHUANGHONGTOU,
    [106] = EPJCardsType.CARDS_TYPE_SHUANGGAOJIAO,
    [105] = EPJCardsType.CARDS_TYPE_SHUANGLINGLIN,
}

--游戏状态
EPJGameState = {
    GAME_STATE_START_GAME = "tlsNewGame",           --游戏开始
    GAME_STATE_START_BET = "StartBet",              --开始下注
    GAME_STATE_STOP_BET = "tlsUptime",              --停止下注
    GAME_STATE_OPEN_CARD = "tlsOpenCard",           --开牌中
    GAME_STATE_GAME_BALANCE = "tlsShowWinner",      --结算中
    GAME_STATE_WAIT_NEXT = "tlsGameIdle",           --等待下一局
    GAME_STATE_DEALER_LEAVE = "tlsDealerLogout",    --荷官离开
    GAME_STATE_DEALER_ENTER = "tlsDealerLogin",     --荷官进入
    GAME_STATE_GAME_SHUFFLE = "tlsShuffle",         --洗牌中
    GAME_STATE_GAME_PAUSE = "tlsPause",             --暂停游戏
    GAME_STATE_GAME_RESUME = "tlsCancelPause",      --继续游戏
    GAME_STATE_DISCONNECT = "Dsiconnect",           --游戏断线
    GAME_STATE_RECONNECT = "Reconnect",             --游戏断线重连
}

--游戏名
EGameName = "pj"